这题的思路:
简单循环枚举即可,因为数据量小。
主要的问题在于四舍五入。
枚举虽然看起来偷懒,但是在赛场上在数据以及时间空间限制允许的情况下,总比你跑数论好(省做题时间)。
我们知道1.5、1.6、1.7、1.8、1.9、2.0、2.1、2.2、2.3、2.4四舍五入都为2,我们可以将其扩大十倍,即15、16、17、18、19、20、21、22、23、24。
由于C++中的/是整除,这样我们就可以判断当扩大后的数被整除后,与k*10的误差范围为-5~4时即可判断相等。
至于小数点后面第二位及以后的数其实对此影响不大,因为扩大十倍后15.00001在整除中还是15,24.999999在整除中还是24。
代码如下:
| 1 | 
 |